
/* 
  1 用户上滑页面 滚动条触底 开始加载下一页数据
    1 找到滚动条触底事件
    2 判断有没有下一页数据
      1 获取到总页数
      2 获取到当前的页码
      3 判断一下当前的页码是否大于等于总页数
    3 假如没有下一页数据 弹出一个提示
    4 假如还有下一页数据 来加载一下也数据
      1 当前的页码++
      2 重新发送请求
      3 数据请求回来 要对data中的数组 拼接而不是全部替换
  2 下拉刷新页面
    1 触发下拉刷新按钮
      找到下拉刷新页面的事件
    2 重置 数据数组
    3 重置页码 设置为1    
    4 重新发送请求
    5 数据请求回来了 需要手动的关闭 等待的效果
*/
//引入封装过的request请求方法
import {request} from '../../request/index.js';

Page({
  data: {
    tabs:[
      {
        id:0,
        value:"综合",
        isActive:true
      },
      {
        id:1,
        value:"销量",
        isActive:false
      },
      {
        id:2,
        value:"价格",
        isActive:false
      }
    ],
    goodsList:[]
  },
  //接口要的参数
  QueryParmes:{
    query:"",
    cid:"",
    pagenum:1,
    pagesize:10
  },
  //总页数
  totalPages:1,

  onLoad: function (options) {
    this.QueryParmes.cid = options.cid;
    this.getGoodsList()
  },

  //获取商品列表数据
    async getGoodsList(){
      let res = await request({url:'/goods/search',data:this.QueryParmes});
      console.log(res)
      //获取总条数
      let total = res.total;
      //计算一下总页数
      this.totalPages = Math.ceil(total / this.QueryParmes.pagesize);
      this.setData({
        //拼接的数组
        goodsList:[...this.data.goodsList,...res.goods]
      })
      // 5 数据请求回来了 需要手动的关闭 等待的效果
      wx.stopPullDownRefresh()
    },

  //标题点击事件 从自组件传递过来的
  handleTapsItemChange(e){
    // 1 获取被点击的标题索引
    let {index} = e.detail;
    // 2 修改原数组 
    let {tabs} = this.data;
    tabs.forEach((v,i) => i === index?v.isActive=true:v.isActive=false);
    // 3 赋值到data中
    this.setData({
      tabs
    })
  },

  //页面上拉触底事件的处理函数
  onReachBottom(){
    // 1 判断还有没有下一页
    if(this.QueryParmes.pagenum>= this.totalPages){
      // 没有下一页拉
      //console.log('%c'+"有下一页数据","color:red;font-size:100px;background-image:linear-gradient(to right,#0094ff,pink)");
      wx.showToast({
        title: '没有下一页啦!',
      })
    }else {
      //还有下一页
      //console.log('%c'+"没有下一页数据","color:red;font-size:100px;background-image:linear-gradient(to right,#0094ff,pink)");
      this.QueryParmes.pagenum++;
      this.getGoodsList()
    }
  },

  //下拉刷新事件
  onPullDownRefresh(){
    // 2 重置 数据数组
    this.setData({
      goodsList:[]
    });
    // 3 重置页码 设置为1    
    this.QueryParmes.pagenum = 1;
    // 4 重新发送请求
    this.getGoodsList()
  }
})